For symbol construction three internal macros had to be defined.
The first, 126, puts a math symbol into a boxed
math environment and adjusts spacing. The second, 127,
puts a math symbol into a raised and boxed math environment and
adjusts spacing. The third, 128, simulates backspacing
and overstriking on a typewriter by overlaying two boxes. The
quad symbol required special construction in order to
generate readable compound symbols such as , ,
.
Full reconstruction was needed only for the <#1551#>APL<#1551#> symbol which is a quad symbol with a short vertical rule. The
first version of this symbol used a single quote instead
of the vertical rule and looked rather awkward.
One disadvantage of our solution is high TEX memory consumption.
We have used 129 commands wherever possible in order to
cut down memory usage.
Typesetting <#1552#>APL<#1552#> symbols for this text has cost us approximately
6,800 words of TEX memory. Typesetting the workspace of
the <#1553#>APL<#1553#> front end (32 functions, 11 variables, 23 pages)
has cost a total of 72,800 words
of TEX memory with 29,000 words used for the <#1554#>APL<#1554#> symbols.
We recommend TEX with 262,141 words of memory.
<#1555#>APL<#1555#> lines are sometimes too long to be
printed in a single line. When displaying
them on the screen, this problem is usually resolved
by wrapping them to the next lines without
adding any hyphen. Thus, line breaks can occur
anywhere in an <#1556#>APL<#1556#> line, in the middle of
<#1557#>APL<#1557#> expressions or even in names.
As we use one macro for typesetting each <#1558#>APL<#1558#> character, the normal TEX hyphenation algorithm
no longer works.
In the definition of each <#1559#>APL<#1559#> symbol which cannot be used in an
identifier the macro 130 is used, which allows breaks with a
penalty of --10. To achieve line breaks in the emergency case the
preprocessor inserts the macro 131 into names longer than 15
characters at regular intervals.
When typesetting <#1560#>APL<#1560#> arrays (cf. Figure~#atomic#701>),
a fixed spaced font is necessary to preserve its
shape. We imitate fixed spaced fonts by simply putting
a box of fixed width around all characters.
For typesetting bold <#1561#>APL<#1561#> code the special environment <#702#>APLbold<#702#>
is defined. It sets 132 and 133 and adjusts
the thickness of rules used in symbol construction.